package lockDemo;
//import android.os.MemoryFile;

import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
/**
 * @author Ajie
 * @date 2023/8/12
 * @function
 * chatgpt 共享内存
 *  这是个 Android Example 2023-08-12
 */
public class ProcessLock_SharedMemory_共享内存_Android_WaitTest {
//        public static void main(String[] args) {
//            try {
//                // 创建一个名为"shared_memory"的共享内存区域，大小为4字节
//                MemoryFile memoryFile = new MemoryFile("shared_memory", 4);
//
//                // 创建一个用于同步的文件
//                RandomAccessFile file = new RandomAccessFile("lockfile.txt", "rw");
//                FileChannel channel = file.getChannel();
//
//                System.out.println("进程等待锁");
//                FileLock lock = channel.lock(); // 获取文件锁
//                System.out.println("进程获取了锁");
//
//                // 读取共享内存的值
//                byte[] buffer = new byte[4];
//                memoryFile.readBytes(buffer, 0, 0, 4);
//                int value = buffer[0];
//
//                // 修改共享内存的值
//                value++;
//                buffer[0] = (byte) value;
//                memoryFile.writeBytes(buffer, 0, 0, 4);
//
//                lock.release(); // 释放文件锁
//                System.out.println("进程释放了锁");
//
//                // 关闭共享内存和文件
//                memoryFile.close();
//                file.close();
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
}
